<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Inductive programming</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Inductive_programming"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Inductive_programming rootpage-Inductive_programming skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Inductive programming</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p><b>Inductive programming</b> (<b>IP</b>) is a special area of <a href="Automatic_programming" title="Automatic programming">automatic programming</a>, covering research from <a href="Artificial_intelligence" title="Artificial intelligence">artificial intelligence</a> and <a href="Computer_programming" title="Computer programming">programming</a>, which addresses <a href="Machine_learning" title="Machine learning">learning</a> of typically <a href="Declarative_programming" title="Declarative programming">declarative</a> (<a href="Logic_programming" title="Logic programming">logic</a> or <a href="Functional_programming" title="Functional programming">functional</a>) and often <a href="Recursion" title="Recursion">recursive</a> programs from incomplete specifications, such as input/output examples or constraints.
</p><p>Depending on the programming language used, there are several kinds of inductive programming. <b>Inductive functional programming</b>, which uses functional programming languages such as <a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a> or <a href="Haskell_(programming_language)" class="mw-redirect" title="Haskell (programming language)">Haskell</a>, and most especially <a href="Inductive_logic_programming" title="Inductive logic programming">inductive logic programming</a>, which uses logic programming languages such as <a href="Prolog" title="Prolog">Prolog</a> and other logical representations such as <a href="Description_logics" class="mw-redirect" title="Description logics">description logics</a>, have been more prominent, but other (programming) language paradigms have also been used, such as <a href="Constraint_programming" title="Constraint programming">constraint programming</a> or <a href="Probabilistic_programming_language" class="mw-redirect" title="Probabilistic programming language">probabilistic programming</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Definition">Definition</h2></div>
<p>Inductive programming incorporates all approaches which are concerned with learning programs or algorithms from incomplete (<a href="Formal_specification" title="Formal specification">formal</a>) specifications. Possible inputs in an IP system are a set of training inputs and corresponding outputs or an output evaluation function, describing the desired behavior of the intended program, <a href="Tracing_(software)" title="Tracing (software)">traces</a> or action sequences which describe the process of calculating specific outputs, <a href="Constraint_(mathematics)" title="Constraint (mathematics)">constraints</a> for the program to be induced concerning its time efficiency or its complexity, various kinds of background knowledge such as standard <a href="Data_type" title="Data type">data types</a>, predefined functions to be used, program schemes or templates describing the data flow of the intended program, heuristics for guiding the search for a solution or other biases.
</p><p>Output of an IP system is a program in some arbitrary programming language containing conditionals and loop or recursive control structures, or any other kind of <a href="Turing_completeness" title="Turing completeness">Turing-complete</a> <a href="Knowledge_representation_and_reasoning" title="Knowledge representation and reasoning">representation</a> language.
</p><p>In many applications the output program must be correct with respect to the examples and partial specification, and this leads to the consideration of inductive programming as a special area inside automatic programming or <a href="Program_synthesis" title="Program synthesis">program synthesis</a>,<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> usually opposed to 'deductive' program synthesis,<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> where the specification is usually complete.
</p><p>In other cases, inductive programming is seen as a more general area where any declarative programming or representation language can be used and we may even have some degree of error in the examples, as in general <a href="Machine_learning" title="Machine learning">machine learning</a>, the more specific area of <a href="Structure_mining" title="Structure mining">structure mining</a> or the area of <a href="Symbolic_artificial_intelligence" title="Symbolic artificial intelligence">symbolic artificial intelligence</a>. A distinctive feature is the number of examples or partial specification needed. Typically, inductive programming techniques can learn from just a few examples.
</p><p>The diversity of inductive programming usually comes from the applications and the languages that are used: apart from logic programming and functional programming, other programming paradigms and representation languages have been used or suggested in inductive programming, such as <a href="Functional_logic_programming" title="Functional logic programming">functional logic programming</a>, <a href="Constraint_programming" title="Constraint programming">constraint programming</a>, <a href="Probabilistic_programming_language" class="mw-redirect" title="Probabilistic programming language">probabilistic programming</a>, <a href="Abductive_logic_programming" title="Abductive logic programming">abductive logic programming</a>, <a href="Modal_logic" title="Modal logic">modal logic</a>, <a href="Action_language" title="Action language">action languages</a>, agent languages and many types of <a href="Imperative_languages" class="mw-redirect" title="Imperative languages">imperative languages</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>Research on the inductive synthesis of recursive functional programs started in the early 1970s and was brought onto firm theoretical foundations with the seminal THESIS system of Summers<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> and work of Biermann.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
These approaches were split into two phases: first, input-output examples are transformed into non-recursive programs (traces) using a small set of basic operators; second, regularities in the traces are searched for and used to fold them into a recursive program. The main results until the mid-1980s are surveyed by Smith.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Due to limited progress with respect to the range of programs that could be synthesized, research activities decreased significantly in the next decade.
</p><p>The advent of logic programming brought a new elan but also a new direction in the early 1980s, especially due to the MIS system of Shapiro<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> eventually spawning the new field of inductive logic programming (ILP).<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> The early works of Plotkin,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> and his "<i>relative least general generalization (rlgg)</i>", had an enormous impact in inductive logic programming. Most of ILP work addresses a wider class of problems, as the focus is not only on recursive logic programs but on machine learning of symbolic hypotheses from logical representations. However, there were some encouraging results on learning recursive Prolog programs such as quicksort from examples together with suitable background knowledge, for example with GOLEM.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> But again, after initial success, the community got disappointed by limited progress about the induction of recursive programs<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> with ILP less and less focusing on recursive programs and leaning more and more towards a machine learning setting with applications in <a href="Relational_data_mining" title="Relational data mining">relational data mining</a> and knowledge discovery.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>In parallel to work in ILP, Koza<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> proposed <a href="Genetic_programming" title="Genetic programming">genetic programming</a> in the early 1990s as a generate-and-test based approach to learning programs. The idea of genetic programming was further developed into the inductive programming system ADATE<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> and the systematic-search-based system MagicHaskeller.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> Here again, functional programs are learned from sets of positive examples together with an output evaluation (fitness) function which specifies the desired input/output behavior of the program to be learned.
</p><p>The early work in <a href="Grammar_induction" title="Grammar induction">grammar induction</a> (also known as grammatical inference) is related to inductive programming, as rewriting systems or logic programs can be used to represent production rules. In fact, early works in inductive inference considered grammar induction and Lisp program inference as basically the same problem.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> The results in terms of learnability were related to classical concepts, such as identification-in-the-limit, as introduced in the seminal work of Gold.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> More recently, the language learning problem was addressed by the inductive programming community.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>
</p><p>In the recent years, the classical approaches have been resumed and advanced with great success. Therefore, the synthesis problem has been reformulated on the background of constructor-based term rewriting systems taking into account modern techniques of functional programming, as well as moderate use of search-based strategies and usage of background knowledge as well as automatic invention of subprograms. Many new and successful applications have recently appeared beyond program synthesis, most especially in the area of data manipulation, programming by example and cognitive modelling (see below).
</p><p>Other ideas have also been explored with the common characteristic of using declarative languages for the representation of hypotheses. For instance, the use of higher-order features, schemes or structured distances have been advocated for a better handling of <a href="Recursive_data_type" title="Recursive data type">recursive data types</a> and structures;<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> abstraction has also been explored as a more powerful approach to <a href="Cumulative_learning" title="Cumulative learning">cumulative learning</a> and function invention.<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Inducing_probabilistic_programs_by_29-0" class="reference"><a href="#cite_note-Inducing_probabilistic_programs_by-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup>
</p><p>One powerful paradigm that has been recently used for the representation of hypotheses in inductive programming (generally in the form of <a href="Generative_model" title="Generative model">generative models</a>) is <a href="Probabilistic_programming_language" class="mw-redirect" title="Probabilistic programming language">probabilistic programming</a> (and related paradigms, such as stochastic logic programs and Bayesian logic programming).<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Inducing_probabilistic_programs_by_29-1" class="reference"><a href="#cite_note-Inducing_probabilistic_programs_by-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Reasoning_about_reasoning_by_nested_conditioning:_Modeling_theory_of_mind_with_probabilistic_programs_32-0" class="reference"><a href="#cite_note-Reasoning_about_reasoning_by_nested_conditioning:_Modeling_theory_of_mind_with_probabilistic_programs-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Application_areas">Application areas</h2></div>
<p>The <a rel="nofollow" class="external text" href="http://www.cogsys.wiai.uni-bamberg.de/aaip05/objectives.html">first workshop on Approaches and Applications of Inductive Programming (AAIP) </a> held in conjunction with <a href="ICML" class="mw-redirect" title="ICML">ICML</a> 2005 identified all applications where "learning of programs or recursive rules are called for, [...] first in the domain of software engineering where structural learning, software assistants and software agents can help to relieve programmers from routine tasks, give programming support for end users, or support of novice programmers and programming tutor systems. Further areas of application are language learning, learning recursive control rules for AI-planning, learning recursive concepts in web-mining or for data-format transformations".
</p><p>Since then, these and many other areas have shown to be successful application niches for inductive programming, such as <a href="End-user_development" title="End-user development">end-user programming</a>,<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> the related areas of <a href="Programming_by_example" title="Programming by example">programming by example</a><sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> and <a href="Programming_by_demonstration" title="Programming by demonstration">programming by demonstration</a>,<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> and <a href="Intelligent_tutoring_system" title="Intelligent tutoring system">intelligent tutoring systems</a>.
</p><p>Other areas where inductive inference has been recently applied are <a href="Knowledge_acquisition" title="Knowledge acquisition">knowledge acquisition</a>,<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> <a href="Artificial_general_intelligence" title="Artificial general intelligence">artificial general intelligence</a>,<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> <a href="Reinforcement_learning" title="Reinforcement learning">reinforcement learning</a> and theory evaluation,<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup> and <a href="Cognitive_science" title="Cognitive science">cognitive science</a> in general.<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Reasoning_about_reasoning_by_nested_conditioning:_Modeling_theory_of_mind_with_probabilistic_programs_32-1" class="reference"><a href="#cite_note-Reasoning_about_reasoning_by_nested_conditioning:_Modeling_theory_of_mind_with_probabilistic_programs-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> There may also be prospective applications in intelligent agents, games, robotics, personalisation, ambient intelligence and human interfaces.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Evolutionary_programming" title="Evolutionary programming">Evolutionary programming</a></li>
<li><a href="Inductive_reasoning" title="Inductive reasoning">Inductive reasoning</a></li>
<li><a href="Test-driven_development" title="Test-driven development">Test-driven development</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFBiermann1992" class="citation journal cs1">Biermann, A.W. (1992). Shapiro, S.C. (ed.). "Automatic programming". <i>Encyclopedia of Artificial Intelligence</i>: <span class="nowrap">18–</span>35.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFRichWaters1993" class="citation book cs1">Rich, C.; Waters, R.C. (1993). Yovits, M.C. (ed.). <a rel="nofollow" class="external text" href="http://www.merl.com/publications/docs/TR92-04.pdf"><i>Approaches to automatic programming</i></a> <span class="cs1-format">(PDF)</span>. Advances in Computers. Vol. 37. pp. <span class="nowrap">1–</span>57. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2FS0065-2458%2808%2960402-7">10.1016/S0065-2458(08)60402-7</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780120121373</bdi>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFLowryMcCarthy1991" class="citation book cs1">Lowry, M.L.; McCarthy, R.D., eds. (1991). <i>Automatic software design</i>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFMannaWaldinger1992" class="citation journal cs1">Manna, Z.; Waldinger, R. (1992). "Fundamentals of deductive program synthesis". <i>IEEE Trans Softw Eng</i>. <b>18</b> (8): <span class="nowrap">674–</span>704. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.51.817">10.1.1.51.817</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F32.153379">10.1109/32.153379</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFFlener2002" class="citation book cs1 cs1-prop-long-vol">Flener, P. (2002). "Achievements and Prospects of Program Synthesis". In Kakas, A.; Sadri, F. (eds.). <i>Computational Logic: Logic Programming and Beyond; Essays in Honour of Robert A. Kowalski</i>. Lecture Notes in Computer Science. Vol. LNAI 2407. pp. <span class="nowrap">310–</span>346. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F3-540-45628-7_13">10.1007/3-540-45628-7_13</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-43959-2</bdi>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFSummers1977" class="citation journal cs1">Summers, P.D. (1977). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F321992.322002">"A methodology for LISP program construction from examples"</a>. <i>J ACM</i>. <b>24</b> (1): <span class="nowrap">161–</span>175. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F321992.322002">10.1145/321992.322002</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:7474210">7474210</a>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFBiermann1978" class="citation journal cs1">Biermann, A.W. (1978). "The inference of regular LISP programs from examples". <i>IEEE Trans Syst Man Cybern</i>. <b>8</b> (8): <span class="nowrap">585–</span>600. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2Ftsmc.1978.4310035">10.1109/tsmc.1978.4310035</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:15277948">15277948</a>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFSmith1984" class="citation journal cs1">Smith, D.R. (1984). Biermann, A.W.; Guiho, G. (eds.). <a rel="nofollow" class="external text" href="https://www.researchgate.net/publication/239059541">"The synthesis of LISP programs from examples: a survey"</a>. <i>Automatic Program Construction Techniques</i>: <span class="nowrap">307–</span>324.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFShapiro1983" class="citation book cs1">Shapiro, E.Y. (1983). <i>Algorithmic program debugging</i>. The MIT Press.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFMuggleton1991" class="citation journal cs1">Muggleton, S. (1991). "Inductive logic programming". <i>New Generation Computing</i>. <b>8</b> (4): <span class="nowrap">295–</span>318. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.329.5312">10.1.1.329.5312</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2FBF03037089">10.1007/BF03037089</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:5462416">5462416</a>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite id="CITEREFPlotkin1970" class="citation journal cs1">Plotkin, Gordon D. (1970). Meltzer, B.; Michie, D. (eds.). <a rel="nofollow" class="external text" href="http://homepages.inf.ed.ac.uk/gdp/publications/MI5_note_ind_gen.pdf">"A Note on Inductive Generalization"</a> <span class="cs1-format">(PDF)</span>. <i>Machine Intelligence</i>. <b>5</b>: <span class="nowrap">153–</span>163.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFPlotkin1971" class="citation journal cs1">Plotkin, Gordon D. (1971). Meltzer, B.; Michie, D. (eds.). "A Further Note on Inductive Generalization". <i>Machine Intelligence</i>. <b>6</b>: <span class="nowrap">101–</span>124.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFMuggletonFeng1990" class="citation journal cs1">Muggleton, S.H.; Feng, C. (1990). "Efficient induction of logic programs". <i>Proceedings of the Workshop on Algorithmic Learning Theory</i>. <b>6</b>: <span class="nowrap">368–</span>381. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:14992676">14992676</a>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite id="CITEREFQuinlanCameron-Jones1993" class="citation journal cs1">Quinlan, J.R.; Cameron-Jones, R.M. (1993). "Avoiding Pitfalls When Learning Recursive Theories". <i>IJCAI</i>: <span class="nowrap">1050–</span>1057. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:11138624">11138624</a>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite id="CITEREFQuinlanCameron-Jones1995" class="citation journal cs1">Quinlan, J.R.; Cameron-Jones, R.M. (1995). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170907080358/http://dottorato.di.uniba.it/dottoratoXXVI/dm/FOILvsRelatedSystems.pdf">"Induction of logic programs: FOIL and related systems"</a> <span class="cs1-format">(PDF)</span>. <b>13</b> (<span class="nowrap">3–</span>4). Springer: <span class="nowrap">287–</span>312. Archived from <a rel="nofollow" class="external text" href="http://dottorato.di.uniba.it/dottoratoXXVI/dm/FOILvsRelatedSystems.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2017-09-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-07</span></span>.</cite> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{cite journal}}</code>: </span><span class="cs1-visible-error citation-comment">Cite journal requires <code class="cs1-code">|journal=</code> (help)</span></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text">
<cite id="CITEREFFlenerYilmaz1999" class="citation journal cs1">Flener, P.; Yilmaz, S. (1999). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fs0743-1066%2899%2900028-x">"Inductive synthesis of recursive logic programs: Achievements and prospects"</a>. <i>The Journal of Logic Programming</i>. <b>41</b> (2): <span class="nowrap">141–</span>195. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fs0743-1066%2899%2900028-x">10.1016/s0743-1066(99)00028-x</a></span>.</cite></span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><cite id="CITEREFDžeroski1996" class="citation cs2">Džeroski, Sašo (1996), "Inductive Logic Programming and Knowledge Discovery in Databases", in Fayyad, U.M.; Piatetsky-Shapiro, G.; Smith, P.; Uthurusamy, R. (eds.), <i>Advances in Knowledge Discovery and Data Mining</i>, MIT Press, pp. <span class="nowrap">117–</span>152</cite></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text">
<cite id="CITEREFKoza1992" class="citation book cs1">Koza, J.R. (1992). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=Bhtxo60BV0EC"><i>Genetic Programming: vol. 1, On the programming of computers by means of natural selection</i></a>. MIT Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780262111706</bdi>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text">
<cite id="CITEREFOlsson1995" class="citation journal cs1">Olsson, J.R. (1995). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0004-3702%2894%2900042-y">"Inductive functional programming using incremental program transformation"</a>. <i>Artificial Intelligence</i>. <b>74</b> (1): <span class="nowrap">55–</span>83. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0004-3702%2894%2900042-y">10.1016/0004-3702(94)00042-y</a></span>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text">
<cite id="CITEREFKatayama2008" class="citation book cs1">Katayama, Susumu (2008). <a rel="nofollow" class="external text" href="http://nautilus.cs.miyazaki-u.ac.jp/~skata/skatayama_pricai2008.pdf">"Efficient Exhaustive Generation of Functional Programs Using Monte-Carlo Search with Iterative Deepening"</a> <span class="cs1-format">(PDF)</span>. <i>PRICAI 2008: Trends in Artificial Intelligence</i>. Lecture Notes in Computer Science. Vol. 5351. pp. <span class="nowrap">199–</span>210. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.606.1447">10.1.1.606.1447</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-540-89197-0_21">10.1007/978-3-540-89197-0_21</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-89196-3</bdi>.</cite></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text">
<cite id="CITEREFAngluinC.H.1983" class="citation journal cs1">Angluin, D.; C.H., Smith (1983). "Inductive inference: Theory and methods". <i>ACM Computing Surveys</i>. <b>15</b> (3): <span class="nowrap">237–</span>269. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F356914.356918">10.1145/356914.356918</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:3209224">3209224</a>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text">
<cite id="CITEREFGold1967" class="citation journal cs1">Gold, E.M. (1967). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fs0019-9958%2867%2991165-5">"Language identification in the limit"</a>. <i>Information and Control</i>. <b>10</b> (5): <span class="nowrap">447–</span>474. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fs0019-9958%2867%2991165-5">10.1016/s0019-9958(67)91165-5</a></span>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite id="CITEREFMuggleton1999" class="citation journal cs1">Muggleton, Stephen (1999). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fs0004-3702%2899%2900067-3">"Inductive Logic Programming: Issues, Results and the Challenge of Learning Language in Logic"</a>. <i>Artificial Intelligence</i>. <b>114</b> (<span class="nowrap">1–</span>2): <span class="nowrap">283–</span>296. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fs0004-3702%2899%2900067-3">10.1016/s0004-3702(99)00067-3</a></span>.</cite>; here: Sect.2.1</span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text">
<cite id="CITEREFOlssonPowers2003" class="citation journal cs1">Olsson, J.R.; Powers, D.M.W. (2003). "Machine learning of human language through automatic programming". <i>Proceedings of the International Conference on Cognitive Science</i>: <span class="nowrap">507–</span>512.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text">
<cite id="CITEREFLloyd2001" class="citation journal cs1">Lloyd, J.W. (2001). <a rel="nofollow" class="external text" href="http://users.cecs.anu.edu.au/~jwl/logic.pdf">"Knowledge Representation, Computation, and Learning in Higher-order Logic"</a> <span class="cs1-format">(PDF)</span>.</cite> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{cite journal}}</code>: </span><span class="cs1-visible-error citation-comment">Cite journal requires <code class="cs1-code">|journal=</code> (help)</span></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text">
<cite id="CITEREFLloyd2003" class="citation book cs1">Lloyd, J.W. (2003). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=8dioCAAAQBAJ"><i>Logic for learning: learning comprehensible theories from structured data</i></a>. Springer. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9783662084069</bdi>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text">
<cite id="CITEREFEstruchFerriHernandez-OralloRamirez-Quintana2014" class="citation journal cs1">Estruch, V.; Ferri, C.; Hernandez-Orallo, J.; Ramirez-Quintana, M.J. (2014). <a rel="nofollow" class="external text" href="https://doi.org/10.1111%2Fcoin.12004">"Bridging the gap between distance and generalization"</a>. <i>Computational Intelligence</i>. <b>30</b> (3): <span class="nowrap">473–</span>513. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1111%2Fcoin.12004">10.1111/coin.12004</a></span>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/10251%2F34946">10251/34946</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:7255690">7255690</a>.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text">
<cite id="CITEREFHendersonMuggleton2012" class="citation journal cs1">Henderson, R.J.; Muggleton, S.H. (2012). <a rel="nofollow" class="external text" href="http://ilp11.doc.ic.ac.uk/short_papers/ilp2011_submission_62.pdf">"Automatic invention of functional abstractions"</a> <span class="cs1-format">(PDF)</span>. <i>Advances in Inductive Logic Programming</i>.</cite></span>
</li>
<li id="cite_note-Inducing_probabilistic_programs_by-29"><span class="mw-cite-backlink">^ <a href="#cite_ref-Inducing_probabilistic_programs_by_29-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Inducing_probabilistic_programs_by_29-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFIrvinStuhlmullerGoodman2011" class="citation arxiv cs1">Irvin, H.; Stuhlmuller, A.; Goodman, N.D. (2011). "Inducing probabilistic programs by Bayesian program merging". <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1110.5667">1110.5667</a></span> [<a rel="nofollow" class="external text" href="https://arxiv.org/archive/cs.AI">cs.AI</a>].</cite></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><cite id="CITEREFMuggleton2000" class="citation journal cs1">Muggleton, S. (2000). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170907080041/https://ocs.aaai.org/Papers/Workshops/2000/WS-00-06/WS00-06-006.pdf">"Learning stochastic logic programs"</a> <span class="cs1-format">(PDF)</span>. <i>Electron. Trans. Artif. Intell</i>. <b>4(B)</b>: <span class="nowrap">141–</span>153. Archived from <a rel="nofollow" class="external text" href="https://ocs.aaai.org/Papers/Workshops/2000/WS-00-06/WS00-06-006.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2017-09-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-09-07</span></span>.</cite></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text">
<cite id="CITEREFDe_RaedtKersting2008" class="citation book cs1">De Raedt, L.; Kersting, K. (2008). <i>Probabilistic inductive logic programming</i>. Springer.</cite></span>
</li>
<li id="cite_note-Reasoning_about_reasoning_by_nested_conditioning:_Modeling_theory_of_mind_with_probabilistic_programs-32"><span class="mw-cite-backlink">^ <a href="#cite_ref-Reasoning_about_reasoning_by_nested_conditioning:_Modeling_theory_of_mind_with_probabilistic_programs_32-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Reasoning_about_reasoning_by_nested_conditioning:_Modeling_theory_of_mind_with_probabilistic_programs_32-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">
<cite id="CITEREFStuhlmullerGoodman2012" class="citation journal cs1">Stuhlmuller, A.; Goodman, N.D. (2012). "Reasoning about reasoning by nested conditioning: Modeling theory of mind with probabilistic programs". <i>Cognitive Systems Research</i>. <b>28</b>: <span class="nowrap">80–</span>99. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.cogsys.2013.07.003">10.1016/j.cogsys.2013.07.003</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:7602205">7602205</a>.</cite></span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text">
<cite id="CITEREFLiebermanPaternòWulf2006" class="citation book cs1">Lieberman, H.; Paternò, F.; Wulf, V. (2006). <i>End user development</i>. Springer.</cite></span>
</li>
<li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text">
<cite id="CITEREFLieberman2001" class="citation book cs1">Lieberman, H. (2001). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=wM2JYafw11gC"><i>Your wish is my command: Programming by example</i></a>. Morgan Kaufmann. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9781558606883</bdi>.</cite></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text">
<cite id="CITEREFCypherHalbert1993" class="citation book cs1">Cypher, E.; Halbert, D.C. (1993). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=Ggzjo0-W1y0C"><i>Watch what I do: programming by demonstration</i></a>. MIT Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780262032131</bdi>.</cite></span>
</li>
<li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text">
<cite id="CITEREFSchmidHofmannKitzelmann2009" class="citation journal cs1"><a href="Ute_Schmid" title="Ute Schmid">Schmid, U.</a>; Hofmann, M.; Kitzelmann, E. (2009). <a rel="nofollow" class="external text" href="http://www.cogsys.wiai.uni-bamberg.de/publications/cognigor-final.pdf">"Analytical inductive programming as a cognitive rule acquisition devise"</a> <span class="cs1-format">(PDF)</span>. <i>Proceedings of the Second Conference on Artificial General Intelligence</i>: <span class="nowrap">162–</span>167.</cite></span>
</li>
<li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text">
<cite id="CITEREFCrossleyKitzelmannHofmannSchmid2009" class="citation journal cs1">Crossley, N.; Kitzelmann, E.; Hofmann, M.; <a href="Ute_Schmid" title="Ute Schmid">Schmid, U.</a> (2009). <a rel="nofollow" class="external text" href="https://download.atlantis-press.com/article/1824.pdf">"Combining analytical and evolutionary inductive programming"</a> <span class="cs1-format">(PDF)</span>. <i>Proceedings of the Second Conference on Artificial General Intelligence</i>: <span class="nowrap">19–</span>24.</cite></span>
</li>
<li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text">
<cite id="CITEREFHernandez-Orallo2000" class="citation journal cs1">Hernandez-Orallo, J. (2000). "Constructive reinforcement learning". <i>International Journal of Intelligent Systems</i>. <b>15</b> (3): <span class="nowrap">241–</span>264. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.34.8877">10.1.1.34.8877</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1002%2F%28sici%291098-111x%28200003%2915%3A3%3C241%3A%3Aaid-int6%3E3.0.co%3B2-z">10.1002/(sici)1098-111x(200003)15:3<241::aid-int6>3.0.co;2-z</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:123390956">123390956</a>.</cite></span>
</li>
<li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text">
<cite id="CITEREFKempGoodmanTenenbaum2007" class="citation journal cs1">Kemp, C.; Goodman, N.; Tenenbaum, J.B. (2007). <a rel="nofollow" class="external text" href="http://papers.nips.cc/paper/3332-learning-and-using-relational-theories.pdf">"Learning and using relational theories"</a> <span class="cs1-format">(PDF)</span>. <i>Advances in Neural Information Processing Systems</i>: <span class="nowrap">753–</span>760.</cite></span>
</li>
<li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text">
<cite id="CITEREFSchmidKitzelmann2011" class="citation journal cs1"><a href="Ute_Schmid" title="Ute Schmid">Schmid, U.</a>; Kitzelmann, E. (2011). "Inductive rule learning on the knowledge level". <i>Cognitive Systems Research</i>. <b>12</b> (3): <span class="nowrap">237–</span>248. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.cogsys.2010.12.002">10.1016/j.cogsys.2010.12.002</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:18613664">18613664</a>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */
.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}
/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><cite id="CITEREFFlenerSchmid2008" class="citation journal cs1">Flener, P.; <a href="Ute_Schmid" title="Ute Schmid">Schmid, U.</a> (2008). "An introduction to inductive programming". <i>Artificial Intelligence Review</i>. <b>29</b> (1): <span class="nowrap">45–</span>62. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10462-009-9108-7">10.1007/s10462-009-9108-7</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:26314997">26314997</a>.</cite></li>
<li><cite id="CITEREFKitzelmann2010" class="citation book cs1">Kitzelmann, E. (2010). <a rel="nofollow" class="external text" href="http://emanuel.kitzelmann.org/documents/publications/Kitzelmann2010.pdf">"Inductive Programming: A Survey of Program Synthesis Techniques"</a> <span class="cs1-format">(PDF)</span>. <i>Approaches and Applications of Inductive Programming</i>. Lecture Notes in Computer Science. Vol. 5812. pp. <span class="nowrap">50–</span>73. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.180.1237">10.1.1.180.1237</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-642-11931-6_3">10.1007/978-3-642-11931-6_3</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-642-11930-9</bdi>.</cite></li>
<li><cite id="CITEREFPartridge1997" class="citation journal cs1">Partridge, D. (1997). "The case for inductive programming". <i>Computer</i>. <b>30</b> (1): <span class="nowrap">36–</span>41. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F2.562924">10.1109/2.562924</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:206403583">206403583</a>.</cite></li>
<li><cite id="CITEREFFlenerPartridge2001" class="citation journal cs1">Flener, P.; Partridge, D. (2001). "Inductive Programming". <i>Automated Software Engineering</i>. <b>8</b> (2): <span class="nowrap">131–</span>137. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1023%2Fa%3A1008797606116">10.1023/a:1008797606116</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:6675212">6675212</a>.</cite></li>
<li><cite id="CITEREFHofmannKitzelmann2009" class="citation journal cs1">Hofmann, M.; Kitzelmann, E. (2009). <a rel="nofollow" class="external text" href="http://www.atlantis-press.com/php/download_paper.php?id=1839">"A unifying framework for analysis and evaluation of inductive programming systems"</a>. <i>Proceedings of the Second Conference on Artificial General Intelligence</i>: <span class="nowrap">55–</span>60.</cite></li>
<li><cite id="CITEREFMuggletonDe_Raedt1994" class="citation journal cs1 cs1-prop-long-vol">Muggleton, S.; De Raedt, L. (1994). <a rel="nofollow" class="external text" href="https://lirias.kuleuven.be/handle/123456789/125406">"Inductive Logic Programming: Theory and methods"</a>. <i>The Journal of Logic Programming</i>. <span class="nowrap">19–</span>20: <span class="nowrap">629–</span>679. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0743-1066%2894%2990035-3">10.1016/0743-1066(94)90035-3</a></span>.</cite></li>
<li><cite id="CITEREFLavracDzeroski1994" class="citation book cs1"><a href="Nada_Lavra%C4%8D" title="Nada Lavrač">Lavrac, N.</a>; Dzeroski, S. (1994). <i>Inductive Logic Programming: Techniques and Applications</i>. New York: Ellis Horwood. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-13-457870-5</bdi>.</cite> <a rel="nofollow" class="external free" href="https://web.archive.org/web/20040906084947/http://www-ai.ijs.si/SasoDzeroski/ILPBook/">https://web.archive.org/web/20040906084947/http://www-ai.ijs.si/SasoDzeroski/ILPBook/</a></li>
<li><cite id="CITEREFMuggletonDe_RaedtPooleBratko2012" class="citation journal cs1">Muggleton, S.; De Raedt, Luc.; Poole, D.; Bratko, I.; Flach, P.; Inoue, K.; Srinivasan, A. (2012). <a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10994-011-5259-2">"ILP turns 20"</a>. <i>Machine Learning</i>. <b>86</b> (1): <span class="nowrap">3–</span>23. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10994-011-5259-2">10.1007/s10994-011-5259-2</a></span>.</cite></li>
<li><cite id="CITEREFGulwaniHernandez-OralloKitzelmannMuggleton2015" class="citation journal cs1">Gulwani, S.; Hernandez-Orallo, J.; Kitzelmann, E.; Muggleton, S.H.; <a href="Ute_Schmid" title="Ute Schmid">Schmid, U.</a>; Zorn, B. (2015). <a rel="nofollow" class="external text" href="http://cacm.acm.org/magazines/2015/11/193326-inductive-programming-meets-the-real-world/abstract">"Inductive Programming Meets the Real World"</a>. <i>Communications of the ACM</i>. <b>58</b> (11): <span class="nowrap">90–</span>99. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.696.3800">10.1.1.696.3800</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F2736282">10.1145/2736282</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/10251%2F64984">10251/64984</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:425881">425881</a>.</cite></li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.inductive-programming.org/">Inductive Programming community page</a>, hosted by the University of Bamberg.</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programming_paradigms_(Comparison_by_language)368" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Programming_paradigms_(Comparison_by_language)368" style="font-size:114%;margin:0 4em"><a href="Programming_paradigm" title="Programming paradigm">Programming paradigms</a> (<a href="Comparison_of_multi-paradigm_programming_languages" title="Comparison of multi-paradigm programming languages">Comparison by language</a>)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Imperative_programming" title="Imperative programming">Imperative</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Structured_programming" title="Structured programming">Structured</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Jackson_structured_programming" title="Jackson structured programming">Jackson structures</a></li>
<li><a href="Block_(programming)" title="Block (programming)">Block-structured</a></li>
<li><a href="Modular_programming" title="Modular programming">Modular</a></li>
<li><a href="Non-structured_programming" title="Non-structured programming">Non-structured</a></li>
<li><a href="Procedural_programming" title="Procedural programming">Procedural</a></li>
<li><a href="Programming_in_the_large_and_programming_in_the_small" title="Programming in the large and programming in the small">Programming in the large and in the small</a></li>
<li><a href="Design_by_contract" title="Design by contract">Design by contract</a></li>
<li><a href="Invariant-based_programming" title="Invariant-based programming">Invariant-based</a></li>
<li><a href="Nested_function" title="Nested function">Nested function</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Object-oriented_programming" title="Object-oriented programming">Object-oriented</a><br>(<a href="Comparison_of_programming_languages_(object-oriented_programming)" title="Comparison of programming languages (object-oriented programming)">comparison</a>, <a href="List_of_object-oriented_programming_languages" title="List of object-oriented programming languages">list</a>)</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Class-based_programming" title="Class-based programming">Class-based</a>, <a href="Prototype-based_programming" title="Prototype-based programming">Prototype-based</a>, <a href="Object-based_language" title="Object-based language">Object-based</a></li>
<li><a href="Agent-oriented_programming" title="Agent-oriented programming">Agent</a></li>
<li><a href="Immutable_object" title="Immutable object">Immutable object</a></li>
<li><a href="Persistent_programming_language" title="Persistent programming language">Persistent</a></li>
<li><a href="Uniform_function_call_syntax" title="Uniform function call syntax">Uniform function call syntax</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Declarative_programming" title="Declarative programming">Declarative</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Functional_programming" title="Functional programming">Functional</a><br>(<a href="Comparison_of_functional_programming_languages" title="Comparison of functional programming languages">comparison</a>)</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Recursion_(computer_science)" title="Recursion (computer science)">Recursive</a></li>
<li><a href="Anonymous_function" title="Anonymous function">Anonymous function</a> (<a href="Partial_application" title="Partial application">Partial application</a>)</li>
<li><a href="Higher-order_programming" title="Higher-order programming">Higher-order</a></li>
<li><a href="Purely_functional_programming" title="Purely functional programming">Purely functional</a></li>
<li><a href="Total_functional_programming" title="Total functional programming">Total</a></li>
<li><a href="Strict_programming_language" title="Strict programming language">Strict</a></li>
<li><a href="Generalized_algebraic_data_type" title="Generalized algebraic data type">GADTs</a></li>
<li><a href="Dependent_type" title="Dependent type">Dependent types</a></li>
<li><a href="Functional_logic_programming" title="Functional logic programming">Functional logic</a></li>
<li><a href="Tacit_programming" title="Tacit programming">Point-free style</a></li>
<li><a href="Expression-oriented_programming_language" title="Expression-oriented programming language">Expression-oriented</a></li>
<li><a href="Applicative_programming_language" title="Applicative programming language">Applicative</a>, <a href="Concatenative_programming_language" title="Concatenative programming language">Concatenative</a></li>
<li><a href="Function-level_programming" title="Function-level programming">Function-level</a>, <a href="Value-level_programming" title="Value-level programming">Value-level</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Dataflow_programming" title="Dataflow programming">Dataflow</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Flow-based_programming" title="Flow-based programming">Flow-based</a></li>
<li><a href="Reactive_programming" title="Reactive programming">Reactive</a> (<a href="Functional_reactive_programming" title="Functional reactive programming">Functional reactive</a>)</li>
<li><a href="Signal_programming" class="mw-redirect" title="Signal programming">Signals</a></li>
<li><a href="Stream_processing" title="Stream processing">Streams</a></li>
<li><a href="Synchronous_programming_language" title="Synchronous programming language">Synchronous</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Logic_programming" title="Logic programming">Logic</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Abductive_logic_programming" title="Abductive logic programming">Abductive logic</a></li>
<li><a href="Answer_set_programming" title="Answer set programming">Answer set</a></li>
<li><a href="Constraint_programming" title="Constraint programming">Constraint</a> (<a href="Constraint_logic_programming" title="Constraint logic programming">Constraint logic</a>)</li>
<li><a href="Inductive_logic_programming" title="Inductive logic programming">Inductive logic</a></li>
<li><a href="Nondeterministic_programming" title="Nondeterministic programming">Nondeterministic</a></li>
<li><a href="Ontology_language" title="Ontology language">Ontology</a></li>
<li><a href="Probabilistic_logic_programming" title="Probabilistic logic programming">Probabilistic logic</a></li>
<li><a href="Query_language" title="Query language">Query</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Domain-specific_language" title="Domain-specific language">DSL</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Algebraic_modeling_language" title="Algebraic modeling language">Algebraic modeling</a></li>
<li><a href="Array_programming" title="Array programming">Array</a></li>
<li><a href="Automata-based_programming" title="Automata-based programming">Automata-based</a> (<a href="Action_language" title="Action language">Action</a>)</li>
<li><a href="Command_language" title="Command language">Command</a> (<a href="Spacecraft_command_language" title="Spacecraft command language">Spacecraft</a>)</li>
<li><a href="Differentiable_programming" title="Differentiable programming">Differentiable</a></li>
<li><a href="End-user_development" title="End-user development">End-user</a></li>
<li><a href="Grammar-oriented_programming" title="Grammar-oriented programming">Grammar-oriented</a></li>
<li><a href="Interface_description_language" title="Interface description language">Interface description</a></li>
<li><a href="Language-oriented_programming" title="Language-oriented programming">Language-oriented</a></li>
<li><a href="List_comprehension" title="List comprehension">List comprehension</a></li>
<li><a href="Low-code_development_platform" title="Low-code development platform">Low-code</a></li>
<li><a href="Modeling_language" title="Modeling language">Modeling</a></li>
<li><a href="Natural-language_programming" class="mw-redirect" title="Natural-language programming">Natural language</a></li>
<li><a href="Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li>
<li><a href="Page_description_language" title="Page description language">Page description</a></li>
<li><a href="Pipeline_(software)" title="Pipeline (software)">Pipes</a> and <a href="Filter_(software)" title="Filter (software)">filters</a></li>
<li><a href="Probabilistic_programming" title="Probabilistic programming">Probabilistic</a></li>
<li><a href="Quantum_programming" title="Quantum programming">Quantum</a></li>
<li><a href="Scientific_programming_language" title="Scientific programming language">Scientific</a></li>
<li><a href="Scripting_language" title="Scripting language">Scripting</a></li>
<li><a href="Set_theoretic_programming" title="Set theoretic programming">Set-theoretic</a></li>
<li><a href="Simulation_language" title="Simulation language">Simulation</a></li>
<li><a href="Stack-oriented_programming" title="Stack-oriented programming">Stack-based</a></li>
<li><a href="System_programming_language" title="System programming language">System</a></li>
<li><a href="Tactile_programming_language" title="Tactile programming language">Tactile</a></li>
<li><a href="Template_processor" title="Template processor">Templating</a></li>
<li><a href="Transformation_language" title="Transformation language">Transformation</a> (<a href="Graph_rewriting" title="Graph rewriting">Graph rewriting</a>, <a href="Production_system_(computer_science)" title="Production system (computer science)">Production</a>, <a href="Pattern_matching" title="Pattern matching">Pattern</a>)</li>
<li><a href="Visual_programming_language" title="Visual programming language">Visual</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Concurrent_computing" title="Concurrent computing">Concurrent</a>,<br><a href="Distributed_computing" title="Distributed computing">distributed</a>,<br><a href="Parallel_computing" title="Parallel computing">parallel</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Actor_model" title="Actor model">Actor-based</a></li>
<li><a href="Automatic_mutual_exclusion" title="Automatic mutual exclusion">Automatic mutual exclusion</a></li>
<li><a href="Choreographic_programming" title="Choreographic programming">Choreographic programming</a></li>
<li><a href="Concurrent_logic_programming" title="Concurrent logic programming">Concurrent logic</a> (<a href="Concurrent_constraint_logic_programming" title="Concurrent constraint logic programming">Concurrent constraint logic</a>)</li>
<li><a href="Concurrent_object-oriented_programming" title="Concurrent object-oriented programming">Concurrent OO</a></li>
<li><a href="Macroprogramming" title="Macroprogramming">Macroprogramming</a></li>
<li><a href="Multitier_programming" title="Multitier programming">Multitier programming</a></li>
<li><a href="Organic_computing" title="Organic computing">Organic computing</a></li>
<li><a href="Parallel_programming_model" title="Parallel programming model">Parallel programming models</a></li>
<li><a href="Partitioned_global_address_space" title="Partitioned global address space">Partitioned global address space</a></li>
<li><a href="Process-oriented_programming" title="Process-oriented programming">Process-oriented</a></li>
<li><a href="Relativistic_programming" title="Relativistic programming">Relativistic programming</a></li>
<li><a href="Service-oriented_programming" title="Service-oriented programming">Service-oriented</a></li>
<li><a href="Structured_concurrency" title="Structured concurrency">Structured concurrency</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Metaprogramming" title="Metaprogramming">Metaprogramming</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Attribute-oriented_programming" title="Attribute-oriented programming">Attribute-oriented</a></li>
<li><a href="Automatic_programming" title="Automatic programming">Automatic</a> ()</li>
<li><a href="Dynamic_programming_language" title="Dynamic programming language">Dynamic</a></li>
<li><a href="Extensible_programming" title="Extensible programming">Extensible</a></li>
<li><a href="Generic_programming" title="Generic programming">Generic</a></li>
<li><a href="Homoiconicity" title="Homoiconicity">Homoiconicity</a></li>
<li><a href="Interactive_programming" title="Interactive programming">Interactive</a></li>
<li><a href="Macro_(computer_science)" title="Macro (computer science)">Macro</a> (<a href="Hygienic_macro" title="Hygienic macro">Hygienic</a>)</li>
<li><a href="Metalinguistic_abstraction" title="Metalinguistic abstraction">Metalinguistic abstraction</a></li>
<li><a href="Multi-stage_programming" title="Multi-stage programming">Multi-stage</a></li>
<li><a href="Program_synthesis" title="Program synthesis">Program synthesis</a> (<a href="Bayesian_program_synthesis" title="Bayesian program synthesis">Bayesian</a>, <a href="Inferential_programming" title="Inferential programming">Inferential</a>, <a href="Programming_by_demonstration" title="Programming by demonstration">by demonstration</a>, <a href="Programming_by_example" title="Programming by example">by example</a>)</li>
<li><a href="Reflective_programming" title="Reflective programming">Reflective</a></li>
<li><a href="Self-modifying_code" title="Self-modifying code">Self-modifying code</a></li>
<li><a href="Symbolic_programming" title="Symbolic programming">Symbolic</a></li>
<li><a href="Template_metaprogramming" title="Template metaprogramming">Template</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Separation_of_concerns" title="Separation of concerns">Separation<br>of concerns</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Aspect-oriented_programming" title="Aspect-oriented programming">Aspects</a></li>
<li><a href="Component-based_software_engineering" title="Component-based software engineering">Components</a></li>
<li><a href="Data-driven_programming" title="Data-driven programming">Data-driven</a></li>
<li><a href="Data-oriented_design" title="Data-oriented design">Data-oriented</a></li>
<li><a href="Event-driven_programming" title="Event-driven programming">Event-driven</a></li>
<li><a href="Feature-oriented_programming" title="Feature-oriented programming">Features</a></li>
<li><a href="Literate_programming" title="Literate programming">Literate</a></li>
<li><a href="Role-oriented_programming" title="Role-oriented programming">Roles</a></li>
<li><a href="Subject-oriented_programming" title="Subject-oriented programming">Subjects</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-23" href="https://en.wikipedia.org/wiki/?title=Inductive_programming&oldid=1296965300">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>